package com.bsg.upm.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 子服务数据传输对象
 * 
 * @author HCK
 *
 */
public class SubServDto implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 唯一编码
	 */
	private String id;

	/**
	 * 子服务关联编码
	 */
	private String relateId;

	/**
	 * 类型
	 */
	private String type;

	/**
	 * 架构编码
	 */
	private String archId;

	/**
	 * 架构
	 */
	private String archName;

	/**
	 * 规模编码
	 */
	private String scaleId;

	/**
	 * 规模
	 */
	private String scaleName;

	/**
	 * 镜像编码
	 */
	private String softwareImageId;

	/**
	 * 软件版本
	 */
	private String softwareVersion;

	/**
	 * 数据目录类型
	 */
	private String dateDirType;

	/**
	 * 数据目录类型文本
	 */
	private String dateDirTypeText;

	/**
	 * 数据目录大小
	 */
	private Long dateSize;

	/**
	 * 日志目录类型
	 */
	private String logDirType;

	/**
	 * 日志目录类型文本
	 */
	private String logDirTypeText;

	/**
	 * 日志目录大小
	 */
	private Long logSize;

	/**
	 * 备份文件总大小
	 */
	private Long backupFileSumSize;

	/**
	 * 带宽
	 */
	private Integer networkBandwidth;

	/**
	 * 接入点
	 */
	private List<String> endPointIps = new ArrayList<>();

	/**
	 * 所用端口
	 */
	private Integer port;

	/**
	 * 状态
	 */
	private String status;

	/**
	 * 状态表示
	 */
	private String statusText;

	/**
	 * 所属服务
	 */
	private ServDto serv;

	/**
	 * 单元
	 */
	private List<UnitDto> units = new ArrayList<>();

	/**
	 * 获取唯一编码
	 * 
	 * @return id 唯一编码
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置唯一编码
	 * 
	 * @param id
	 *            唯一编码
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取子服务关联编码
	 * 
	 * @return relateId 子服务关联编码
	 */
	public String getRelateId() {
		return relateId;
	}

	/**
	 * 设置子服务关联编码
	 * 
	 * @param relateId
	 *            子服务关联编码
	 */
	public void setRelateId(String relateId) {
		this.relateId = relateId;
	}

	/**
	 * 获取类型
	 * 
	 * @return type 类型
	 */
	public String getType() {
		return type;
	}

	/**
	 * 设置类型
	 * 
	 * @param type
	 *            类型
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * 获取架构编码
	 * 
	 * @return archId 架构编码
	 */
	public String getArchId() {
		return archId;
	}

	/**
	 * 设置架构编码
	 * 
	 * @param archId
	 *            架构编码
	 */
	public void setArchId(String archId) {
		this.archId = archId;
	}

	/**
	 * 获取架构
	 * 
	 * @return archName 架构
	 */
	public String getArchName() {
		return archName;
	}

	/**
	 * 设置架构
	 * 
	 * @param archName
	 *            架构
	 */
	public void setArchName(String archName) {
		this.archName = archName;
	}

	/**
	 * 获取规模编码
	 * 
	 * @return scaleId 规模编码
	 */
	public String getScaleId() {
		return scaleId;
	}

	/**
	 * 设置规模编码
	 * 
	 * @param scaleId
	 *            规模编码
	 */
	public void setScaleId(String scaleId) {
		this.scaleId = scaleId;
	}

	/**
	 * 获取规模
	 * 
	 * @return scaleName 规模
	 */
	public String getScaleName() {
		return scaleName;
	}

	/**
	 * 设置规模
	 * 
	 * @param scaleName
	 *            规模
	 */
	public void setScaleName(String scaleName) {
		this.scaleName = scaleName;
	}

	/**
	 * 获取镜像编码
	 * 
	 * @return softwareImageId 镜像编码
	 */
	public String getSoftwareImageId() {
		return softwareImageId;
	}

	/**
	 * 设置镜像编码
	 * 
	 * @param softwareImageId
	 *            镜像编码
	 */
	public void setSoftwareImageId(String softwareImageId) {
		this.softwareImageId = softwareImageId;
	}

	/**
	 * 获取软件版本
	 * 
	 * @return softwareVersion 软件版本
	 */
	public String getSoftwareVersion() {
		return softwareVersion;
	}

	/**
	 * 设置软件版本
	 * 
	 * @param softwareVersion
	 *            软件版本
	 */
	public void setSoftwareVersion(String softwareVersion) {
		this.softwareVersion = softwareVersion;
	}

	/**
	 * 获取数据目录类型
	 * 
	 * @return dateDirType 数据目录类型
	 */
	public String getDateDirType() {
		return dateDirType;
	}

	/**
	 * 设置数据目录类型
	 * 
	 * @param dateDirType
	 *            数据目录类型
	 */
	public void setDateDirType(String dateDirType) {
		this.dateDirType = dateDirType;
	}

	/**
	 * 获取数据目录类型文本
	 * 
	 * @return dateDirTypeText 数据目录类型文本
	 */
	public String getDateDirTypeText() {
		return dateDirTypeText;
	}

	/**
	 * 设置数据目录类型文本
	 * 
	 * @param dateDirTypeText
	 *            数据目录类型文本
	 */
	public void setDateDirTypeText(String dateDirTypeText) {
		this.dateDirTypeText = dateDirTypeText;
	}

	/**
	 * 获取数据目录大小
	 * 
	 * @return dateSize 数据目录大小
	 */
	public Long getDateSize() {
		return dateSize;
	}

	/**
	 * 设置数据目录大小
	 * 
	 * @param dateSize
	 *            数据目录大小
	 */
	public void setDateSize(Long dateSize) {
		this.dateSize = dateSize;
	}

	/**
	 * 获取日志目录类型
	 * 
	 * @return logDirType 日志目录类型
	 */
	public String getLogDirType() {
		return logDirType;
	}

	/**
	 * 设置日志目录类型
	 * 
	 * @param logDirType
	 *            日志目录类型
	 */
	public void setLogDirType(String logDirType) {
		this.logDirType = logDirType;
	}

	/**
	 * 获取日志目录类型文本
	 * 
	 * @return logDirTypeText 日志目录类型文本
	 */
	public String getLogDirTypeText() {
		return logDirTypeText;
	}

	/**
	 * 设置日志目录类型文本
	 * 
	 * @param logDirTypeText
	 *            日志目录类型文本
	 */
	public void setLogDirTypeText(String logDirTypeText) {
		this.logDirTypeText = logDirTypeText;
	}

	/**
	 * 获取日志目录大小
	 * 
	 * @return logSize 日志目录大小
	 */
	public Long getLogSize() {
		return logSize;
	}

	/**
	 * 设置日志目录大小
	 * 
	 * @param logSize
	 *            日志目录大小
	 */
	public void setLogSize(Long logSize) {
		this.logSize = logSize;
	}

	/**
	 * 获取备份文件总大小
	 * 
	 * @return backupFileSumSize 备份文件总大小
	 */
	public Long getBackupFileSumSize() {
		return backupFileSumSize;
	}

	/**
	 * 设置备份文件总大小
	 * 
	 * @param backupFileSumSize
	 *            备份文件总大小
	 */
	public void setBackupFileSumSize(Long backupFileSumSize) {
		this.backupFileSumSize = backupFileSumSize;
	}

	/**
	 * 获取带宽
	 * 
	 * @return networkBandwidth 带宽
	 */
	public Integer getNetworkBandwidth() {
		return networkBandwidth;
	}

	/**
	 * 设置带宽
	 * 
	 * @param networkBandwidth
	 *            带宽
	 */
	public void setNetworkBandwidth(Integer networkBandwidth) {
		this.networkBandwidth = networkBandwidth;
	}

	/**
	 * 获取接入点
	 * 
	 * @return endPointIps 接入点
	 */
	public List<String> getEndPointIps() {
		return endPointIps;
	}

	/**
	 * 设置接入点
	 * 
	 * @param endPointIps
	 *            接入点
	 */
	public void setEndPointIps(List<String> endPointIps) {
		this.endPointIps = endPointIps;
	}

	/**
	 * 获取所用端口
	 * 
	 * @return port 所用端口
	 */
	public Integer getPort() {
		return port;
	}

	/**
	 * 设置所用端口
	 * 
	 * @param port
	 *            所用端口
	 */
	public void setPort(Integer port) {
		this.port = port;
	}

	/**
	 * 获取状态
	 * 
	 * @return status 状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置状态
	 * 
	 * @param status
	 *            状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取状态表示
	 * 
	 * @return statusText 状态表示
	 */
	public String getStatusText() {
		return statusText;
	}

	/**
	 * 设置状态表示
	 * 
	 * @param statusText
	 *            状态表示
	 */
	public void setStatusText(String statusText) {
		this.statusText = statusText;
	}

	/**
	 * 获取所属服务
	 * 
	 * @return serv 所属服务
	 */
	public ServDto getServ() {
		return serv;
	}

	/**
	 * 设置所属服务
	 * 
	 * @param serv
	 *            所属服务
	 */
	public void setServ(ServDto serv) {
		this.serv = serv;
	}

	/**
	 * 获取单元
	 * 
	 * @return units 单元
	 */
	public List<UnitDto> getUnits() {
		return units;
	}

	/**
	 * 设置单元
	 * 
	 * @param units
	 *            单元
	 */
	public void setUnits(List<UnitDto> units) {
		this.units = units;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "SubServDto [id=" + id + ", relateId=" + relateId + ", type=" + type + ", archId=" + archId
				+ ", archName=" + archName + ", scaleId=" + scaleId + ", scaleName=" + scaleName + ", softwareImageId="
				+ softwareImageId + ", softwareVersion=" + softwareVersion + ", dateDirType=" + dateDirType
				+ ", dateDirTypeText=" + dateDirTypeText + ", dateSize=" + dateSize + ", logDirType=" + logDirType
				+ ", logDirTypeText=" + logDirTypeText + ", logSize=" + logSize + ", backupFileSumSize="
				+ backupFileSumSize + ", networkBandwidth=" + networkBandwidth + ", endPointIps=" + endPointIps
				+ ", port=" + port + ", status=" + status + ", statusText=" + statusText + ", serv=" + serv + ", units="
				+ units + "]";
	}

}
